﻿using System.ServiceModel;
using SharpShare.Configuration;
using System.Collections.Generic;
using System;
using System.Collections.ObjectModel;

namespace SharpShare.Management {
    [ServiceContract]
    public interface IShareManager {
        [OperationContract]
        void Start();

        [OperationContract]
        void Stop();

        ShareManagerState State {
            [OperationContract]
            get;
        }

        ReadOnlyCollection<Data.SessionInfo> Sessions {
            [OperationContract]
            [UseNetDataContractSerializer]
            get;
        }

        [OperationContract]
        string GetLocalConfigurationLocation();

        [OperationContract]
        void UpdateConfiguration();
    }
}
